package faktorI;

import java.io.Serializable;

public class KontrolerPetlji implements Serializable{
	
	
	private class Unos implements Serializable{
		String zakljucak;
		int brojP;
		Unos(String zaklj, int broj){
			zakljucak = zaklj;
			brojP = broj;
		}
	} 
	
	private static KontrolerPetlji instanca;
	private Unos[] sadrzaj;
	private int vrh = 0, kapacitet = 0;
	
	public void postaviInstancu(KontrolerPetlji inst){instanca = inst;}
	public boolean push(String zakljucak, int broj){
		Unos temp = new Unos(zakljucak, broj);
		if(proveri(temp)){
			if(vrh == kapacitet)prosiri();
			sadrzaj[vrh++] = temp;
			return true;
		}
		return false; 
	}
	public Unos pop(){
		return sadrzaj[--vrh];
	}
	
	public boolean proveri(Unos unos){
		for(int i=0; i<vrh; i++){
			if(sadrzaj[i].zakljucak.equals(unos.zakljucak) &&
				sadrzaj[i].brojP == unos.brojP	
				)return false;
		}
		return true;
	}
	private void prosiri(){
		Unos[] temp = new Unos[kapacitet += 10];
		for(int i=0; i<kapacitet - 10; i++)temp[i] = sadrzaj[i];
		sadrzaj = temp;
	}
	public KontrolerPetlji(){
		sadrzaj = new Unos[kapacitet = 10];
		vrh =0;
	}
	public static KontrolerPetlji instanca(){
		if(instanca == null)return instanca = new KontrolerPetlji();
		return instanca;
	}
	
	public static void isprazni(){instanca = new KontrolerPetlji();}
}
